﻿#pragma once

#include "function/LayerSystem/Layer.h"
#include "function/RenderSystem/AbstractBuffer.h"
#include "function/RenderSystem/AbstractShader.h"
#include "function/RenderSystem/ShaderLibrary.h"
#include "function/RenderSystem/Texture.h"
#include "function/RenderSystem/Camera/CameraController.h"

namespace Editor
{
	class ExampleLayer final : public Engine::Layer
	{
	public:
		ExampleLayer();
		~ExampleLayer() override = default;

		void OnUpdate(float deltaTime) override;
		void OnImGuiRender() override;
		void OnEvent(Engine::Event& event) override;

	private:
		Engine::Ref<Engine::VertexArray> vertexArray;
		Engine::Ref<Engine::Texture2D> texture;
        Engine::Ref<Engine::Texture2D> alphaTexture;
		Engine::ShaderLibrary shaderLibrary;
		Engine::Ref<Engine::AbstractShader> shader;
		glm::vec3 squareColor = { 0.0f, 0.0f, 0.0f };

		float deltaTime = 0.0f;

		Engine::CameraController cameraController;
	};
}
